(hack-one-local-variable): Treat ...-hook(s) and ..-function(s)
authorRichard M. Stallman <rms@gnu.org>
Thu, 10 Jun 1993 21:31:56 +0000 (21:31 +0000)
committerRichard M. Stallman <rms@gnu.org>
Thu, 10 Jun 1993 21:31:56 +0000 (21:31 +0000)
like setting the `eval' variable.

lisp/files.el

index 37ad1c980bc45c543206696b875161e83ed4eb98..047bea3c2df1614b62133c2af1071cfe1e20a823 100644 (file)
@@ -1011,7 +1011,9 @@ If `enable-local-variables' is nil, this function does not check for a
        ((memq var ignored-local-variables)
         nil)
        ;; "Setting" eval means either eval it or do nothing.
-       ((eq var 'eval)
+       ;; Likewise for setting hook variables.
+       ((or (eq var 'eval)
+            (string-match "-hooks?$\\|-functions?$" (symbol-name var)))
         (if (and (not (string= (user-login-name) "root"))
                  (or (eq enable-local-eval t)
                      (and enable-local-eval
@@ -1021,9 +1023,12 @@ If `enable-local-variables' is nil, this function does not check for a
                               (beginning-of-line)
                               (set-window-start (selected-window) (point)))
                             (setq enable-local-eval
-                                  (y-or-n-p (format "Process `eval' local variable in file %s? "
+                                  (y-or-n-p (format "Process `eval' or hook local variables in file %s? "
                                                     (file-name-nondirectory buffer-file-name))))))))
-            (save-excursion (eval val))
+            (if (eq var 'eval)
+                (save-excursion (eval val))
+              (make-local-variable var)
+              (set var val))
           (message "Ignoring `eval:' in file's local variables")))
        ;; Ordinary variable, really set it.
        (t (make-local-variable var)